﻿using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using QDT.Common;
using QDT.Core.Members;
using QDT.Core.Projects;

namespace QDT.Services.Projects
{
    public interface IProjectService
    {
        /// <summary>
        /// 新增标
        /// </summary>
        /// <param name="project">项目对象</param>
        /// <param name="extends">扩展属性集合 </param>
        /// <returns></returns>
        Project CreateProject(Project project, NameValueCollection extends);

        /// <summary>
        /// 获取项目(不跟踪实体)
        /// </summary>
        /// <param name="projectid">项目ID</param>
        Project GetProject(int projectid);

        /// <summary>
        /// 更新项目信息
        /// </summary>
        /// <param name="project">项目对象</param>
        /// <param name="extends">项目的扩展属性键值对集合</param>
        void UpdateProject(Project project, NameValueCollection extends);

        /// <summary>
        /// 从回收站恢复项目类型
        /// </summary>
        /// <param name="id">项目的ID数组</param>
        void RestoreProject(int[] id);

        /// <summary>
        /// 删除项目到回收站
        /// </summary>
        /// <param name="id">项目的ID数组</param>
        void DeleteProject(int[] id);

        /// <summary>
        /// 从回收站永久性删除项目
        /// </summary>
        /// <param name="id">项目的ID数组</param>
        void ForeverDeleteProject(int[] id);

        void Release(int id, DateTime startTime);

        void Paying(int id, DateTime start);

        /// <summary>
        /// 获得标的资料图片
        /// </summary>
        /// <param name="pid"></param>
        /// <returns></returns>
        IList<ProjectImage> GetProjectImages(int pid);

        IList<ProjectImage> GetProjectAgencyImages(int pid);

    }
}
